/* 封装用户相关的接口 */

import axios from '@/utils/request'

// 导入vuex仓库
// import store from '@/store'

/**
 * 用户登录
 *
 * @export
 * @param {*} mobile 手机号
 * @param {*} code 验证码
 * @return {*}
 */
export function userLogin(mobile, code) {
  return axios({
    method: 'POST',
    url: '/v1_0/authorizations',
    // POST方式数据写在哪
    data: {
      mobile,
      code
    }
  })
}

/**
 * 获取用户的个人信息
 *
 * @export
 * @return {*}
 */
export function getUserProfile() {
  // token令牌信息 ==> vuex的仓库中有存储（从仓库中来获取）
  // 在vue组件中，通过 this.$store 可以获取到vuex的仓库 ==>   this.$store.state.user.token.token
  // 但是现在是在单独的js模块中，不能通过this.$store 来获取到vuex的仓库

  // const token = store.state.user.token.token
  // console.log(token)

  return axios({
    url: '/v1_0/user/profile'
    // headers 请求头信息 ==> 带上token 信息 ==> 后期通过请求拦截器给优化好
    // headers: {
    //   // Authorization: 'Bearer ' + token
    //   Authorization: `Bearer ${token}`
    // }
  })
}

/**
 * 编辑用户资料
 * @param {*} data 是个对象，里面是需要修改的数据名和值 { name: 'xm' }
 * @returns
 */
export function editUserInfo(data) {
  return axios({
    url: '/v1_0/user/profile',
    method: 'PATCH',
    data
  })
}
// 调用示例
// editUserInfo({ name: 'xm' })

/**
 * 编辑用户头像
 * @param {*} data 头像    FormData的实例对象（收集到了裁切后的头像）
 * @returns
 */

// ajax的FormData（收集表单数据-收集文件信息）
// ==> const fd = new FormData()
// fd.append() 追加数据

export function editUserPhoto(data) {
  return axios({
    url: '/v1_0/user/photo',
    method: 'PATCH',
    // data: FormData的实例对象（收集到了裁切后的头像）
    data
  })
}
